package com.taijihuabao.modules.entity;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.taijihuabao.common.commonutils.LongToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.Date;


/**
 * 请假申请管理
 * @author Wang
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@ApiModel("请假申请实体")
public class LeavesEntity extends BaseEntity {

    /**
     * 主键id
     */
    @JsonSerialize(using = LongToStringSerializer.class)
    @ApiModelProperty(value = "主键id")
    private Long id;

    /**
     * 请假人id
     */
    @JsonSerialize(using = LongToStringSerializer.class)
    @ApiModelProperty(value = "请假人id")
    private Long userId;

    /**
     * 请假人姓名
     */
    @ApiModelProperty(value = "请假人姓名")
    private String name;

    /**
     * 请假类型
     */
    @ApiModelProperty(value = "请假类型")
    private String leavesType;

    /**
     * 请假开始时间
     */
    @ApiModelProperty(value = "请假开始时间")
    private Date leavesStart;

    /**
     * 请假结束时间
     */
    @ApiModelProperty(value = "请假结束时间")
    private Date leavesEnd;

    /**
     * 请假原因
     */
    @ApiModelProperty(value = "请假原因")
    private String leavesReason;

    /**
     * 请假证明
     */
    @ApiModelProperty(value = "请假证明")
    private String leavesProve;

    /**
     * 请假单状态
     */
    @ApiModelProperty(value = "请假单状态")
    private String leavesState;

    /**
     * 请假天数
     */
    @ApiModelProperty(value = "请假天数")
    private String leavesDays;

    /**
     * 文件url
     */
    @ApiModelProperty(value = "文件url")
    private String proveUrl;

    /**
     * 请假备注
     */
    @ApiModelProperty(value = "请假备注")
    private String leavesRemarks;

    /**
     * 申请编码
     */
    @ApiModelProperty(value = "申请编码")
    private String applyCode;

    /**
     * "业务主键"
     */
    @ApiModelProperty(value = "业务主键等同于审批编码")
    private String businessId;

}
